<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>17-组件的切换</title>
    <script src="../js/vue.js"></script>
</head>
<body>
<!--准备一个div容器-->
<div id="app">
    <vm-login v-if="flag"></vm-login>
    <vm-register v-else></vm-register>
    <button @click="change">点击切换登录注册页面</button>
</div>
<!--登录组件-->
<template id="temp1">
    <div>
        <form action="">
            <p>
                用户名：<input type="text"  v-model="username">
            </p>
            <p>
                密码：<input type="password" v-model="password">
            </p>
            <p>
                <button @click="login">登录</button>
            </p>
        </form>
    </div>
</template>
<!--注册组件-->
<template id="temp2">
    <div>
        <form action="">
            <p>
                用户名：<input type="text"  v-model="username" placeholder="请输入注册用户名">
            </p>
            <p>
                密码：<input type="password" v-model="password" placeholder="请输入注册密码">
            </p>
            <p>
                <button @click="register">注册</button>
            </p>
        </form>
    </div>
</template>
<script>
    // 创建模板
    const login = Vue.extend({
        template:"#temp1",
        data(){
            return {
                username:undefined,
                password:undefined,
            }
        },
        methods:{
            login:function () {
                alert(`登录的用户名：${this.username},密码：${this.password}`);
            }
        }
    });
    const register = Vue.extend({
        template:"#temp2",
        data(){
            return {
                username:undefined,
                password:undefined,
            }
        },
        methods:{
            register:function () {
                alert(`注册的用户名：${this.username},密码：${this.password}`);
            }
        }
    });

    // 注册组件
    Vue.component("vm-login",login);
    Vue.component("vm-register",register);
    <!--准备一个Vue对象和容器绑定-->
    const vm = new Vue({
        // 绑定容器
        el: "#app",
        // 数据
        data: {
            flag:true,
        },
        // 方法
        methods: {
            change:function () {
                this.flag=!this.flag;
            }
        },
        // 局部过滤器
        filters: {},
        // 监听器
        watch: {},
    });
</script>
</body>
</html>